TESTS += zcash-gtest
bin_PROGRAMS += zcash-gtest

# tool for generating our public parameters
zcash_gtest_SOURCES = \
	gtest/main.cpp \
	gtest/utils.cpp \
	gtest/test_checkblock.cpp \
	gtest/test_checktransaction.cpp \
	gtest/json_test_vectors.cpp \
        gtest/json_test_vectors.h \
	gtest/test_foundersreward.cpp \
	gtest/test_wallet_zkeys.cpp \
	gtest/test_jsonspirit.cpp \
	gtest/test_tautology.cpp \
	gtest/test_equihash.cpp \
	gtest/test_joinsplit.cpp \
	gtest/test_keystore.cpp \
	gtest/test_noteencryption.cpp \
	gtest/test_merkletree.cpp \
	gtest/test_pow.cpp \
	gtest/test_random.cpp \
	gtest/test_rpc.cpp \
	gtest/test_transaction.cpp \
	gtest/test_circuit.cpp \
	gtest/test_txid.cpp \
	gtest/test_libzcash_utils.cpp \
	gtest/test_proofs.cpp \
	wallet/gtest/test_wallet.cpp

zcash_gtest_CPPFLAGS = -DMULTICORE -fopenmp -DBINARY_OUTPUT -DCURVE_ALT_BN128 -DSTATIC

zcash_gtest_LDADD = -lgtest -lgmock $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CRYPTO) $(LIBBITCOIN_UNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \
  $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1)
if ENABLE_WALLET
zcash_gtest_LDADD += $(LIBBITCOIN_WALLET)
endif

zcash_gtest_LDADD += $(LIBZCASH_CONSENSUS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(LIBZCASH) $(LIBZCASH_LIBS)

zcash_gtest_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) -static

zcash-gtest_check: zcash-gtest FORCE
	./zcash-gtest

zcash-gtest-expected-failures: zcash-gtest FORCE
	./zcash-gtest --gtest_filter=*DISABLED_* --gtest_also_run_disabled_tests
